In some conventional navigation satellite signals, pilot signals may not be transmitted. To demodulate such signals, the receiver usually employs differential demodulation to overcome the difficulty of not having reference (pilot) signals. To assist the receiver to demodulate the signals, a satellite vehicle (SV) may need to encode the data differentially before the transmission. However, in some conventional satellite systems, the signals may not be encoded differentially, which may cause the receiver to be prone to data decoding errors (also referred to as cycle slips). In addition, in some conventional satellite systems, flaws in the code design may cause the receiver more susceptible to data decoding errors, as there may be no overlap between codewords in the sub-frame (also referred to as subframe). One example of such coding is BCH (15, 11, 1). This code has the property that if a string of 15 bits is a valid codeword, then the inverse of that string, formed by replacing 0 by 1 and 1 by 0, may also be a valid codeword. This property can cause the code to be useless in presence of data decoding errors. For example, the transmitter transmits a sequence of fifteen zeros. However, due to a cycle slip occurred before the codeword, the receiver may demodulate the string as a sequence of fifteen ones. Because of the property of the BCH code, the fifteen ones may also be a valid code word. If the cycle slip happens at the boundaries between two codewords, the receiver would not be able to detect that the word is in error by just relying on the BCH code, and the receiver may accept the fifteen ones as a valid code word. This problem can lead to large outliers since the ephemeris/almanac may be corrupted.
Therefore, there is a need for method, device, computer program product, and apparatus that can address the above issues of the conventional satellite systems.